<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Promise初体验</title>
</head>
<body>
<button>抽奖</button>
<script>

  function rand(m,n){
    return Math.ceil(Math.random()*(n-m+1))+m-1
  }

  const btn=document.querySelector('button')
  // btn.addEventListener('click',()=>{
  //
  //     setTimeout(()=>{
  //
  //         let n=rand(1,100)
  //         if (n<=30){
  //         alert('恭喜你中奖了')
  //     }
  //         else alert('很遗憾你没有中奖')
  //     },2000)
  // }
  // )

  //使用promise
  // 参数是一个函数类型的值，这个函数还有两个形参，分别是resolve，reject
  // 函数里边是需要执行的异步操作,成功的地方调用resolve，失败调用reject

  btn.addEventListener('click',function () {
      const p=new Promise((resolve,reject)=>{
          setTimeout(()=>{

              let n=rand(1,100)
              if (n<=30){
                  resolve()//将promise的状态设置成【成功】
              }
              else reject()//将promise的状态设置成【失败】
          },1000)
      })
//调用promise内部的then方法
//需要两个参数，都是函数类型的值
//第一个函数是对象成功时的回调，第二个参数时对象失败时的回调
      p.then(()=>{
              alert('恭喜你中奖了')

          },
          ()=>{
              alert('很遗憾你没有中奖')
          }
      )
  })

</script>
</body>
</html>